home *** CD-ROM | disk | FTP | other *** search
/ Super PC 34 / Super PC 34 (Shareware).iso / spc / UTIL / DJGPP2 / V2 / DJLSR200.ZIP / src / libc / posix / sys / stat / xstat.h < prev   
Encoding:
C/C++ Source or Header  |  1995-11-12  |  2.7 KB  |  74 lines

  1. /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
  2. /*
  3.  * Header for internal stat()/fstat() assist functions.
  4.  *
  5.  */
  6.  
  7. #ifndef __XSTAT_H
  8. #define __XSTAT_H
  9.  
  10. #include <stdio.h>
  11. #include <time.h>
  12. #include <sys/types.h>
  13. #include <sys/stat.h>
  14. #include <dpmi.h>
  15.  
  16. /* Some errno.h headers do not define EFAULT.  Here the value is
  17.    taken from POSIX IEEE 1003.1.  */
  18. #include <errno.h>
  19. #ifndef EFAULT
  20. #define EFAULT  14
  21. #endif
  22.  
  23. /* Under MS-DOS, file access permissions are shared by all, except for
  24.    Write permission. */
  25. #define READ_ACCESS     (S_IRUSR | S_IRGRP | S_IROTH)
  26. #define WRITE_ACCESS    S_IWUSR
  27. #define EXEC_ACCESS     (S_IXUSR | S_IXGRP | S_IXOTH)
  28.  
  29. /* Macro to convert a segment and an offset to a "far offset" suitable
  30.    for _farxxx() functions of DJGPP.  */
  31. #ifndef MK_FOFF
  32. #define MK_FOFF(s,o) ((int)((((unsigned long)(s)) << 4) + (unsigned short)(o)))
  33. #endif
  34.  
  35. /* Ralph Brown's Interrupt List says this should be the length
  36.    of the buffer for INT 21H AX=6000H.  */
  37. #define MAX_TRUE_NAME   128
  38.  
  39. extern unsigned short   _osmajor, _osminor;
  40. extern const    char  * _os_flavor;
  41.  
  42. /* Bits to flag f?stat() failed to use individual undocumented features. */
  43. #define _STFAIL_SDA         1   /* Get SDA call failed */
  44. #define _STFAIL_OSVER       2   /* Unsupported DOS version */
  45. #define _STFAIL_BADSDA      4   /* Bad pointer to SDA */
  46. #define _STFAIL_TRUENAME    8   /* _truename() failed */
  47. #define _STFAIL_HASH     0x10   /* inode defaults to hashing */
  48. #define _STFAIL_LABEL    0x20   /* Root dir, but no volume label */
  49. #define _STFAIL_DCOUNT   0x40   /* dirent_count ridiculously large */
  50. #define _STFAIL_WRITEBIT 0x80   /* fstat() failed to get write access bit */
  51. #define _STFAIL_DEVNO   0x100   /* fstat() failed to get device number */
  52. #define _STFAIL_BADSFT  0x200   /* SFT entry found, but can't be trusted */
  53. #define _STFAIL_SFTIDX  0x400   /* bad SFT index in JFT */
  54. #define _STFAIL_SFTNF   0x800   /* file entry not found in SFT array */
  55.  
  56. extern unsigned short   _djstat_fail_bits;
  57.  
  58. extern unsigned short   _djstat_flags;
  59.  
  60. extern time_t           _file_time_stamp(unsigned int);
  61. extern ino_t            _invent_inode(const char *, unsigned, unsigned long);
  62. extern unsigned short   _get_magic(const char *, int);
  63. extern unsigned short   _get_dos_version(int);
  64. extern char           * _truename(const char *, char *);
  65. extern int              _is_remote_drive(int);
  66. extern int              _is_executable(const char *, int, const char *);
  67. extern short            _get_dev_info(int);
  68. extern long             __filelength(int);
  69. extern int              _is_remote_handle(int);
  70. extern void             _djstat_describe_lossage(FILE *);
  71. extern int              _getftime(int, unsigned int *);
  72.  
  73. #endif  /* __XSTAT_H */
  74.